package com.interview.javabase.aggregate.list;

import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.ArrayList;
import java.util.List;

/**
 * @description:  java.util.ConcurrentModificationException
 * @author: zhangshuguang@zhangshuguang.com
 * @date: 2019/05/21 09:40
 */
@SpringBootTest
public class Demo2 {

    /**
     * 问题
     */
    @Test
    public void question() {
        List<String> list = new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.forEach(s -> {
            list.remove(s);
        });

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

    /**
     * 第一种解决方案
     */
    @Test
    public void solution1(){
        List<String> list = new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");

        for (int i = 0; i < list.size(); i++) {
            list.remove(i);
            i--;
        }

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

    }
}
